home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK2.toast / Development Kits (Disc 2) / QuickTime / QuickTime™ 2.5 / Interfaces for Programmers / AIncludes / MoviesFormat.a < prev    next >
Encoding:
Text File  |  1997-02-26  |  19.7 KB  |  509 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        MoviesFormat.a
  3. ;
  4. ;    Contains:    QuickTime interfaces
  5. ;
  6. ;    Version:    Technology:    
  7. ;                Release:    QuickTime 2.5 interfaces to use with ETO #20
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__MOVIESFORMAT__') = 'UNDEFINED' THEN
  19. __MOVIESFORMAT__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__WINDOWS__') = 'UNDEFINED' THEN
  25.     include 'Windows.a'
  26.     ENDIF
  27.     IF &TYPE('__IMAGECOMPRESSION__') = 'UNDEFINED' THEN
  28.     include 'ImageCompression.a'
  29.     ENDIF
  30.     IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN
  31.     include 'Movies.a'
  32.     ENDIF
  33.  
  34. kMovieVersion                    EQU        0                    ; version number of the format here described 
  35. ;
  36. ;***************************************
  37. ;*
  38. ;*   General Types -
  39. ;*        These types are used in more than one of the
  40. ;*        directory types.
  41. ;*
  42. ;***************************************
  43. ;
  44. MoviesUserData            RECORD 0
  45. size                     ds.l    1                ; offset: $0 (0)        ;  size of this user data 
  46. udType                     ds.l    1                ; offset: $4 (4)        ;  type of user data 
  47. data                     ds.b    1                ; offset: $8 (8) <-- really an array of length one ;  the user data 
  48.                          ORG 10
  49. sizeof                     EQU *                    ; size:   $A (10)
  50.                         ENDR
  51. UserDataAtom            RECORD 0
  52. size                     ds.l    1                ; offset: $0 (0)
  53. atomType                 ds.l    1                ; offset: $4 (4)
  54. userData                 ds        MoviesUserData ; offset: $8 (8) <-- really an array of length one
  55. sizeof                     EQU *                    ; size:   $12 (18)
  56.                         ENDR
  57. ;
  58. ; MoviesDataDescription tells us where the data for the movie or track lives.
  59. ;   The data can follow the directory, be in the datafork of the same file as the directory resource,
  60. ;   be in the resource fork of the same file as the directory resource, be in another file in the
  61. ;   data fork or resource fork, or require a specific bottleneck to fetch the data. 
  62. ;
  63. ;
  64. ;***************************************
  65. ;*
  66. ;*   MediaDirectory information -
  67. ;*        The MediaDirectory is tightly coupled to the data.
  68. ;*
  69. ;***************************************
  70. ;
  71. SampleDescriptionAtom    RECORD 0
  72. size                     ds.l    1                ; offset: $0 (0)
  73. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stsd' 
  74. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  75. numEntries                 ds.l    1                ; offset: $C (12)
  76. sampleDescTable             ds        SampleDescription ; offset: $10 (16) <-- really an array of length one
  77. sizeof                     EQU *                    ; size:   $20 (32)
  78.                         ENDR
  79. ;  TimeToSampleNum maps physical sample time to physical sample number. 
  80. TimeToSampleNum            RECORD 0
  81. sampleCount                 ds.l    1                ; offset: $0 (0)
  82. sampleDuration             ds.l    1                ; offset: $4 (4)
  83. sizeof                     EQU *                    ; size:   $8 (8)
  84.                         ENDR
  85. TimeToSampleNumAtom        RECORD 0
  86. size                     ds.l    1                ; offset: $0 (0)
  87. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stts' 
  88. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  89. numEntries                 ds.l    1                ; offset: $C (12)
  90. timeToSampleNumTable     ds        TimeToSampleNum ; offset: $10 (16) <-- really an array of length one
  91. sizeof                     EQU *                    ; size:   $18 (24)
  92.                         ENDR
  93. ;  SyncSamples is a list of the physical samples which are self contained. 
  94. SyncSampleAtom            RECORD 0
  95. size                     ds.l    1                ; offset: $0 (0)
  96. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stss' 
  97. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  98. numEntries                 ds.l    1                ; offset: $C (12)
  99. syncSampleTable             ds.l    1                ; offset: $10 (16) <-- really an array of length one
  100. sizeof                     EQU *                    ; size:   $14 (20)
  101.                         ENDR
  102. ;  SampleToChunk maps physical sample number to chunk number. 
  103. ;  same as SampleToChunk, but redundant first sample is removed 
  104. SampleToChunk            RECORD 0
  105. firstChunk                 ds.l    1                ; offset: $0 (0)
  106. samplesPerChunk             ds.l    1                ; offset: $4 (4)
  107. sampleDescriptionID         ds.l    1                ; offset: $8 (8)
  108. sizeof                     EQU *                    ; size:   $C (12)
  109.                         ENDR
  110. SampleToChunkAtom        RECORD 0
  111. size                     ds.l    1                ; offset: $0 (0)
  112. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stsc' 
  113. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  114. numEntries                 ds.l    1                ; offset: $C (12)
  115. sampleToChunkTable         ds        SampleToChunk    ; offset: $10 (16) <-- really an array of length one
  116. sizeof                     EQU *                    ; size:   $1C (28)
  117.                         ENDR
  118. ChunkOffsetAtom            RECORD 0
  119. size                     ds.l    1                ; offset: $0 (0)
  120. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stco' 
  121. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  122. numEntries                 ds.l    1                ; offset: $C (12)
  123. chunkOffsetTable         ds.l    1                ; offset: $10 (16) <-- really an array of length one
  124. sizeof                     EQU *                    ; size:   $14 (20)
  125.                         ENDR
  126. SampleSizeAtom            RECORD 0
  127. size                     ds.l    1                ; offset: $0 (0)
  128. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stsz' 
  129. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  130. sampleSize                 ds.l    1                ; offset: $C (12)
  131. numEntries                 ds.l    1                ; offset: $10 (16)
  132. sampleSizeTable             ds.l    1                ; offset: $14 (20) <-- really an array of length one
  133. sizeof                     EQU *                    ; size:   $18 (24)
  134.                         ENDR
  135. ShadowSync                RECORD 0
  136. fdSampleNum                 ds.l    1                ; offset: $0 (0)
  137. syncSampleNum             ds.l    1                ; offset: $4 (4)
  138. sizeof                     EQU *                    ; size:   $8 (8)
  139.                         ENDR
  140. ShadowSyncAtom            RECORD 0
  141. size                     ds.l    1                ; offset: $0 (0)
  142. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stsz' 
  143. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  144. numEntries                 ds.l    1                ; offset: $C (12)
  145. shadowSyncTable             ds        ShadowSync        ; offset: $10 (16) <-- really an array of length one
  146. sizeof                     EQU *                    ; size:   $18 (24)
  147.                         ENDR
  148. SampleTableAtom            RECORD 0
  149. size                     ds.l    1                ; offset: $0 (0)
  150. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'stbl' 
  151. sampleDescription         ds        SampleDescriptionAtom ; offset: $8 (8)
  152. timeToSampleNum             ds        TimeToSampleNumAtom ; offset: $28 (40)
  153. sampleToChunk             ds        SampleToChunkAtom ; offset: $40 (64)
  154. syncSample                 ds        SyncSampleAtom ; offset: $5C (92)
  155. sampleSize                 ds        SampleSizeAtom ; offset: $70 (112)
  156. chunkOffset                 ds        ChunkOffsetAtom ; offset: $88 (136)
  157. shadowSync                 ds        ShadowSyncAtom ; offset: $9C (156)
  158. sizeof                     EQU *                    ; size:   $B4 (180)
  159.                         ENDR
  160. PublicHandlerInfo        RECORD 0
  161. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  162. componentType             ds.l    1                ; offset: $4 (4)
  163. componentSubType         ds.l    1                ; offset: $8 (8)
  164. componentManufacturer     ds.l    1                ; offset: $C (12)
  165. componentFlags             ds.l    1                ; offset: $10 (16)
  166. componentFlagsMask         ds.l    1                ; offset: $14 (20)
  167. componentName             ds.b    1                ; offset: $18 (24) <-- really an array of length one
  168.                          ORG 26
  169. sizeof                     EQU *                    ; size:   $1A (26)
  170.                         ENDR
  171. HandlerAtom                RECORD 0
  172. size                     ds.l    1                ; offset: $0 (0)
  173. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'hdlr' 
  174. hInfo                     ds        PublicHandlerInfo ; offset: $8 (8)
  175. sizeof                     EQU *                    ; size:   $22 (34)
  176.                         ENDR
  177. ;  a data reference is a private structure 
  178. ; typedef long                             DataRefAtom
  179.  
  180. DataInfoAtom            RECORD 0
  181. size                     ds.l    1                ; offset: $0 (0)
  182. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'dinf' 
  183. dataRef                     ds.l    1                ; offset: $8 (8)
  184. sizeof                     EQU *                    ; size:   $C (12)
  185.                         ENDR
  186. RgnAtom                    RECORD 0
  187. size                     ds.l    1                ; offset: $0 (0)
  188. atomType                 ds.l    1                ; offset: $4 (4)
  189. rgnSize                     ds.w    1                ; offset: $8 (8)
  190. rgnBBox                     ds        Rect            ; offset: $A (10)
  191. data                     ds.b    1                ; offset: $12 (18) <-- really an array of length one
  192.                          ORG 20
  193. sizeof                     EQU *                    ; size:   $14 (20)
  194.                         ENDR
  195. MatteCompressedAtom        RECORD 0
  196. size                     ds.l    1                ; offset: $0 (0)
  197. atomType                 ds.l    1                ; offset: $4 (4)
  198. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  199. matteImageDescription     ds        ImageDescription ; offset: $C (12)
  200. matteData                 ds.b    1                ; offset: $62 (98) <-- really an array of length one
  201.                          ORG 100
  202. sizeof                     EQU *                    ; size:   $64 (100)
  203.                         ENDR
  204. MatteAtom                RECORD 0
  205. size                     ds.l    1                ; offset: $0 (0)
  206. atomType                 ds.l    1                ; offset: $4 (4)
  207. aCompressedMatte         ds        MatteCompressedAtom ; offset: $8 (8)
  208. sizeof                     EQU *                    ; size:   $6C (108)
  209.                         ENDR
  210. ClippingAtom            RECORD 0
  211. size                     ds.l    1                ; offset: $0 (0)
  212. atomType                 ds.l    1                ; offset: $4 (4)
  213. aRgnClip                 ds        RgnAtom            ; offset: $8 (8)
  214. sizeof                     EQU *                    ; size:   $1C (28)
  215.                         ENDR
  216. ;
  217. ;**********************
  218. ;* Media Info Example Structures
  219. ;**********************
  220. ;
  221. VideoMediaInfoHeader    RECORD 0
  222. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  223. graphicsMode             ds.w    1                ; offset: $4 (4)        ;  for QD - transfer mode 
  224. opColorRed                 ds.w    1                ; offset: $6 (6)        ;  opcolor for transfer mode 
  225. opColorGreen             ds.w    1                ; offset: $8 (8)
  226. opColorBlue                 ds.w    1                ; offset: $A (10)
  227. sizeof                     EQU *                    ; size:   $C (12)
  228.                         ENDR
  229. VideoMediaInfoHeaderAtom RECORD 0
  230. size                     ds.l    1                ; offset: $0 (0)        ;  size of Media info 
  231. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'vmhd' 
  232. vmiHeader                 ds        VideoMediaInfoHeader ; offset: $8 (8)
  233. sizeof                     EQU *                    ; size:   $14 (20)
  234.                         ENDR
  235. VideoMediaInfo            RECORD 0
  236. size                     ds.l    1                ; offset: $0 (0)        ;  size of Media info 
  237. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'minf' 
  238. header                     ds        VideoMediaInfoHeaderAtom ; offset: $8 (8)
  239. dataHandler                 ds        HandlerAtom        ; offset: $1C (28)
  240. dataInfo                 ds        DataInfoAtom    ; offset: $3E (62)
  241. sampleTable                 ds        SampleTableAtom ; offset: $4A (74)
  242. sizeof                     EQU *                    ; size:   $FE (254)
  243.                         ENDR
  244. SoundMediaInfoHeader    RECORD 0
  245. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  246. balance                     ds.w    1                ; offset: $4 (4)
  247. rsrvd                     ds.w    1                ; offset: $6 (6)
  248. sizeof                     EQU *                    ; size:   $8 (8)
  249.                         ENDR
  250. SoundMediaInfoHeaderAtom RECORD 0
  251. size                     ds.l    1                ; offset: $0 (0)        ;  size of Media info 
  252. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'vmhd' 
  253. smiHeader                 ds        SoundMediaInfoHeader ; offset: $8 (8)
  254. sizeof                     EQU *                    ; size:   $10 (16)
  255.                         ENDR
  256. SoundMediaInfo            RECORD 0
  257. size                     ds.l    1                ; offset: $0 (0)        ;  size of Media info 
  258. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'minf' 
  259. header                     ds        SoundMediaInfoHeaderAtom ; offset: $8 (8)
  260. dataHandler                 ds        HandlerAtom        ; offset: $18 (24)
  261. dataReference             ds.l    1                ; offset: $3A (58)
  262. sampleTable                 ds        SampleTableAtom ; offset: $3E (62)
  263. sizeof                     EQU *                    ; size:   $F2 (242)
  264.                         ENDR
  265. ;  whatever data the media handler needs goes after the atomType 
  266. MediaInfo                RECORD 0
  267. size                     ds.l    1                ; offset: $0 (0)
  268. atomType                 ds.l    1                ; offset: $4 (4)
  269. sizeof                     EQU *                    ; size:   $8 (8)
  270.                         ENDR
  271. ;
  272. ;**********************
  273. ;* Media Directory Structures
  274. ;**********************
  275. ;
  276. MediaHeader                RECORD 0
  277. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  278. creationTime             ds.l    1                ; offset: $4 (4)        ;  seconds since Jan 1904 when directory was created 
  279. modificationTime         ds.l    1                ; offset: $8 (8)        ;  seconds since Jan 1904 when directory was appended 
  280. timeScale                 ds.l    1                ; offset: $C (12)        ;  start time for Media (Media time) 
  281. duration                 ds.l    1                ; offset: $10 (16)        ;  length of Media (Media time) 
  282. language                 ds.w    1                ; offset: $14 (20)
  283. quality                     ds.w    1                ; offset: $16 (22)
  284. sizeof                     EQU *                    ; size:   $18 (24)
  285.                         ENDR
  286. MediaHeaderAtom            RECORD 0
  287. size                     ds.l    1                ; offset: $0 (0)
  288. atomType                 ds.l    1                ; offset: $4 (4)
  289. header                     ds        MediaHeader        ; offset: $8 (8)
  290. sizeof                     EQU *                    ; size:   $20 (32)
  291.                         ENDR
  292. MediaDirectory            RECORD 0
  293. size                     ds.l    1                ; offset: $0 (0)
  294. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'mdia' 
  295. mediaHeader                 ds        MediaHeaderAtom ; offset: $8 (8)        ;  standard Media information 
  296. mediaHandler             ds        HandlerAtom        ; offset: $28 (40)
  297. mediaInfo                 ds        MediaInfo        ; offset: $4A (74)
  298. sizeof                     EQU *                    ; size:   $52 (82)
  299.                         ENDR
  300. ;
  301. ;**********************
  302. ;* Track Structures
  303. ;**********************
  304. ;
  305.  
  306. TrackEnable                        EQU        $01
  307. TrackInMovie                    EQU        $02
  308. TrackInPreview                    EQU        $04
  309. TrackInPoster                    EQU        $08
  310. TrackHeader                RECORD 0
  311. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  312. creationTime             ds.l    1                ; offset: $4 (4)        ;  seconds since Jan 1904 when directory was created 
  313. modificationTime         ds.l    1                ; offset: $8 (8)        ;  seconds since Jan 1904 when directory was appended 
  314. trackID                     ds.l    1                ; offset: $C (12)
  315. reserved1                 ds.l    1                ; offset: $10 (16)
  316. duration                 ds.l    1                ; offset: $14 (20)        ;  length of track (track time) 
  317. reserved2                 ds.l    1                ; offset: $18 (24)
  318. reserved3                 ds.l    1                ; offset: $1C (28)
  319. layer                     ds.w    1                ; offset: $20 (32)
  320. alternateGroup             ds.w    1                ; offset: $22 (34)
  321. volume                     ds.w    1                ; offset: $24 (36)
  322. reserved4                 ds.w    1                ; offset: $26 (38)
  323. matrix                     ds        MatrixRecord    ; offset: $28 (40)
  324. trackWidth                 ds.l    1                ; offset: $4C (76)
  325. trackHeight                 ds.l    1                ; offset: $50 (80)
  326. sizeof                     EQU *                    ; size:   $54 (84)
  327.                         ENDR
  328. TrackHeaderAtom            RECORD 0
  329. size                     ds.l    1                ; offset: $0 (0)        ;  size of track header 
  330. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'tkhd' 
  331. header                     ds        TrackHeader        ; offset: $8 (8)
  332. sizeof                     EQU *                    ; size:   $5C (92)
  333.                         ENDR
  334. EditListType            RECORD 0
  335. trackDuration             ds.l    1                ; offset: $0 (0)
  336. mediaTime                 ds.l    1                ; offset: $4 (4)
  337. mediaRate                 ds.l    1                ; offset: $8 (8)
  338. sizeof                     EQU *                    ; size:   $C (12)
  339.                         ENDR
  340. EditListAtom            RECORD 0
  341. size                     ds.l    1                ; offset: $0 (0)
  342. atomType                 ds.l    1                ; offset: $4 (4)        ;  = elst 
  343. flags                     ds.l    1                ; offset: $8 (8)        ;  1 byte of version / 3 bytes of flags 
  344. numEntries                 ds.l    1                ; offset: $C (12)
  345. editListTable             ds        EditListType    ; offset: $10 (16) <-- really an array of length one
  346. sizeof                     EQU *                    ; size:   $1C (28)
  347.                         ENDR
  348. EditsAtom                RECORD 0
  349. size                     ds.l    1                ; offset: $0 (0)
  350. atomType                 ds.l    1                ; offset: $4 (4)        ;  = edts 
  351. editList                 ds        EditListAtom    ; offset: $8 (8)
  352. sizeof                     EQU *                    ; size:   $24 (36)
  353.                         ENDR
  354. TrackLoadSettings        RECORD 0
  355. preloadStartTime         ds.l    1                ; offset: $0 (0)
  356. preloadDuration             ds.l    1                ; offset: $4 (4)
  357. preloadFlags             ds.l    1                ; offset: $8 (8)
  358. defaultHints             ds.l    1                ; offset: $C (12)
  359. sizeof                     EQU *                    ; size:   $10 (16)
  360.                         ENDR
  361. TrackLoadSettingsAtom    RECORD 0
  362. size                     ds.l    1                ; offset: $0 (0)
  363. atomType                 ds.l    1                ; offset: $4 (4)        ;  = load 
  364. settings                 ds        TrackLoadSettings ; offset: $8 (8)
  365. sizeof                     EQU *                    ; size:   $18 (24)
  366.                         ENDR
  367. TrackDirectory            RECORD 0
  368. size                     ds.l    1                ; offset: $0 (0)
  369. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'trak' 
  370. trackHeader                 ds        TrackHeaderAtom ; offset: $8 (8)        ;  standard track information 
  371. trackClip                 ds        ClippingAtom    ; offset: $64 (100)
  372. edits                     ds        EditsAtom        ; offset: $80 (128)
  373. media                     ds        MediaDirectory ; offset: $A4 (164)
  374. userData                 ds        UserDataAtom    ; offset: $F6 (246)        ;  space for extending with new data types 
  375. sizeof                     EQU *                    ; size:   $108 (264)
  376.                         ENDR
  377. ;
  378. ;***************************************
  379. ;*
  380. ;*   MovieDirectory -
  381. ;*        The MovieDirectory is the top level structure which
  382. ;*        holds the TrackInstance describing where the
  383. ;*        TrackDirectories are.
  384. ;*
  385. ;***************************************
  386. ;
  387. MovieHeader                RECORD 0
  388. flags                     ds.l    1                ; offset: $0 (0)        ;  1 byte of version / 3 bytes of flags 
  389. creationTime             ds.l    1                ; offset: $4 (4)        ;  seconds since Jan 1904 when directory was created 
  390. modificationTime         ds.l    1                ; offset: $8 (8)        ;  seconds since Jan 1904 when directory was appended 
  391. timeScale                 ds.l    1                ; offset: $C (12)        ;  Time specifications 
  392. duration                 ds.l    1                ; offset: $10 (16)
  393. preferredRate             ds.l    1                ; offset: $14 (20)        ;  rate at which to play this movie 
  394. preferredVolume             ds.w    1                ; offset: $18 (24)        ;  volume to play movie at 
  395. reserved1                 ds.w    1                ; offset: $1A (26)
  396. preferredLong1             ds.l    1                ; offset: $1C (28)
  397. preferredLong2             ds.l    1                ; offset: $20 (32)
  398. matrix                     ds        MatrixRecord    ; offset: $24 (36)
  399. previewTime                 ds.l    1                ; offset: $48 (72)        ;  time in track the proxy begins (track time) 
  400. previewDuration             ds.l    1                ; offset: $4C (76)        ;  how long the proxy lasts (track time) 
  401. posterTime                 ds.l    1                ; offset: $50 (80)        ;  time in track the proxy begins (track time) 
  402. selectionTime             ds.l    1                ; offset: $54 (84)        ;  time in track the proxy begins (track time) 
  403. selectionDuration         ds.l    1                ; offset: $58 (88)        ;  time in track the proxy begins (track time) 
  404. currentTime                 ds.l    1                ; offset: $5C (92)        ;  time in track the proxy begins (track time) 
  405. nextTrackID                 ds.l    1                ; offset: $60 (96)        ;  next value to use for a TrackID 
  406. sizeof                     EQU *                    ; size:   $64 (100)
  407.                         ENDR
  408. MovieHeaderAtom            RECORD 0
  409. size                     ds.l    1                ; offset: $0 (0)
  410. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'mvhd' 
  411. header                     ds        MovieHeader        ; offset: $8 (8)
  412. sizeof                     EQU *                    ; size:   $6C (108)
  413.                         ENDR
  414. TrackDirectoryEntry        RECORD 0
  415. trackDirectory             ds        TrackDirectory ; offset: $0 (0)            ;  Track directory information 
  416. sizeof                     EQU *                    ; size:   $108 (264)
  417.                         ENDR
  418. MovieDirectory            RECORD 0
  419. size                     ds.l    1                ; offset: $0 (0)
  420. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'moov' 
  421. header                     ds        MovieHeaderAtom ; offset: $8 (8)
  422. movieClip                 ds        ClippingAtom    ; offset: $74 (116)
  423. ;  Track Directories 
  424. track                     ds        TrackDirectoryEntry ; offset: $90 (144) <-- really an array of length one ;  Track directory information 
  425. ;  User data for Movie 
  426. userData                 ds        UserDataAtom    ; offset: $198 (408)    ;  space for user extensions 
  427. sizeof                     EQU *                    ; size:   $1AA (426)
  428.                         ENDR
  429. ;
  430. ;***************************************
  431. ;***************************************
  432. ;
  433. ;  Movie formats and tags 
  434.  
  435.                                                             ; some system defined format IDs 
  436. MOVIE_TYPE                        EQU        'moov'
  437. TRACK_TYPE                        EQU        'trak'
  438. MEDIA_TYPE                        EQU        'mdia'
  439. VIDEO_TYPE                        EQU        'vide'
  440. SOUND_TYPE                        EQU        'soun'
  441. ;  atom id's 
  442.  
  443. MovieAID                        EQU        'moov'
  444. MovieHeaderAID                    EQU        'mvhd'
  445. ClipAID                            EQU        'clip'
  446. RgnClipAID                        EQU        'crgn'
  447. MatteAID                        EQU        'matt'
  448. MatteCompAID                    EQU        'kmat'
  449. TrackAID                        EQU        'trak'
  450. UserDataAID                        EQU        'udta'
  451. TrackHeaderAID                    EQU        'tkhd'
  452. EditsAID                        EQU        'edts'
  453. EditListAID                        EQU        'elst'
  454. MediaAID                        EQU        'mdia'
  455. MediaHeaderAID                    EQU        'mdhd'
  456. MediaInfoAID                    EQU        'minf'
  457. VideoMediaInfoHeaderAID            EQU        'vmhd'
  458. SoundMediaInfoHeaderAID            EQU        'smhd'
  459. GenericMediaInfoHeaderAID        EQU        'gmhd'
  460. GenericMediaInfoAID                EQU        'gmin'
  461. DataInfoAID                        EQU        'dinf'
  462. DataRefAID                        EQU        'dref'
  463. SampleTableAID                    EQU        'stbl'
  464. STSampleDescAID                    EQU        'stsd'
  465. STTimeToSampAID                    EQU        'stts'
  466. STSyncSampleAID                    EQU        'stss'
  467. STSampleToChunkAID                EQU        'stsc'
  468. STShadowSyncAID                    EQU        'stsh'
  469. HandlerAID                        EQU        'hdlr'
  470. STSampleSizeAID                    EQU        'stsz'
  471. STChunkOffsetAID                EQU        'stco'
  472. STChunkOffset64AID                EQU        'co64'
  473. DataRefContainerAID                EQU        'drfc'
  474. TrackReferenceAID                EQU        'tref'
  475. ColorTableAID                    EQU        'ctab'
  476. LoadSettingsAID                    EQU        'load'
  477. PropertyAtomAID                    EQU        'code'
  478. InputMapAID                        EQU        'imap'
  479. MovieBufferHintsAID                EQU        'mbfh'
  480. MovieDataRefAliasAID            EQU        'mdra'
  481. SoundLocalizationAID            EQU        'sloc'
  482. ;  Text ATOM definitions
  483. TextBoxAtom                RECORD 0
  484. size                     ds.l    1                ; offset: $0 (0)
  485. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'tbox' 
  486. textBox                     ds        Rect            ; offset: $8 (8)        ;  New text box (overrides defaultTextBox)
  487. sizeof                     EQU *                    ; size:   $10 (16)
  488.                         ENDR
  489. HiliteAtom                RECORD 0
  490. size                     ds.l    1                ; offset: $0 (0)
  491. atomType                 ds.l    1                ; offset: $4 (4)        ;  = 'hlit' 
  492. selStart                 ds.l    1                ; offset: $8 (8)        ;  hilite selection start character
  493. selEnd                     ds.l    1                ; offset: $C (12)        ;  hilite selection end character
  494. sizeof                     EQU *                    ; size:   $10 (16)
  495.                         ENDR
  496. KaraokeRec                RECORD 0
  497. timeVal                     ds.l    1                ; offset: $0 (0)
  498. beginHilite                 ds.w    1                ; offset: $4 (4)
  499. endHilite                 ds.w    1                ; offset: $6 (6)
  500. sizeof                     EQU *                    ; size:   $8 (8)
  501.                         ENDR
  502. KaraokeAtom                RECORD 0
  503. numEntries                 ds.l    1                ; offset: $0 (0)
  504. karaokeEntries             ds        KaraokeRec        ; offset: $4 (4) <-- really an array of length one
  505. sizeof                     EQU *                    ; size:   $C (12)
  506.                         ENDR
  507.     ENDIF ; __MOVIESFORMAT__ 
  508.  
  509.